home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / sndhrdw / mario.c < prev    next >
C/C++ Source or Header  |  2000-04-04  |  1KB  |  64 lines

  1. #include "driver.h"
  2. #include "cpu/i8039/i8039.h"
  3.  
  4.  
  5.  
  6. WRITE_HANDLER( mario_sh_w )
  7. {
  8.     if (data)
  9.         cpu_set_irq_line(1,0,ASSERT_LINE);
  10.     else
  11.         cpu_set_irq_line(1,0,CLEAR_LINE);
  12. }
  13.  
  14.  
  15. /* Mario running sample */
  16. WRITE_HANDLER( mario_sh1_w )
  17. {
  18.     static int last;
  19.  
  20.     if (last!= data)
  21.     {
  22.         last = data;
  23.                 if (data && sample_playing(0) == 0) sample_start (0, 3, 0);
  24.     }
  25. }
  26.  
  27. /* Luigi running sample */
  28. WRITE_HANDLER( mario_sh2_w )
  29. {
  30.     static int last;
  31.  
  32.     if (last!= data)
  33.     {
  34.         last = data;
  35.                 if (data && sample_playing(1) == 0) sample_start (1, 4, 0);
  36.     }
  37. }
  38.  
  39. /* Misc samples */
  40. WRITE_HANDLER( mario_sh3_w )
  41. {
  42.     static int state[8];
  43.  
  44.     /* Don't trigger the sample if it's still playing */
  45.     if (state[offset] == data) return;
  46.  
  47.     state[offset] = data;
  48.     if (data)
  49.     {
  50.         switch (offset)
  51.         {
  52.             case 2: /* ice */
  53.                 sample_start (2, 0, 0);
  54.                 break;
  55.             case 6: /* coin */
  56.                 sample_start (2, 1, 0);
  57.                 break;
  58.             case 7: /* skid */
  59.                 sample_start (2, 2, 0);
  60.                 break;
  61.         }
  62.     }
  63. }
  64.